/**
 * 
 */
package com.sfpay.coreplatform.account.persistence.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.sfpay.coreplatform.account.valueobject.dto.RecDataVO;
import com.sfpay.coreplatform.account.valueobject.dto.TallySerialQuery;
import com.sfpay.coreplatform.account.valueobject.tmo.TallySerial;



/**
 * 
 * 类说明：
 * 
 * 
 * <p>
 * 详细描述：
 * 
 * 
 * @author 311449 曾巍明 Michael@sf-express.com
 * 
 *         CreateDate: 2012-2-10
 */
public interface ITallySerialDao {

	/**
	 * 
	 * 方法说明：
	 * 
	 * @param tallySerial
	 */
	void addTallySerial(TallySerial tallySerial);

	/**
	 * 
	 * 方法说明：记账流水查询
	 * 
	 * @param tallySerialQuery
	 *            记账流水查询对象
	 * @return
	 */
	public List<TallySerial> queryTallySerial(TallySerialQuery tallySerialQuery);
	

	/**
	 *
	 * 方法说明：查询出查询记录的总数
	 *
	 * @param tallySerialQuery 记账流水查询对象
	 * @return
	 */
	public Long queryTallySerialCount(TallySerialQuery tallySerialQuery);

	/**
	 * 
	 * 方法说明：记账流水分页查询
	 * 
	 * @param tallySerialQuery
	 *            记账流水查询对象
	 * @param index
	 *            页数
	 * @param size
	 *            每页个数
	 * @return
	 */
	public List<TallySerial> queryTallySerialByPage(
			@Param("tallySerialQuery") TallySerialQuery tallySerialQuery,
			@Param("index") int index, @Param("size") int size);

	
	/**
	 * 查询对账支付金额
	 * 
	 * 方法说明：
	 * 
	 * @param accountDate
	 * @param index
	 * @param size
	 * @return
	 */
	List<RecDataVO> queryRecData(@Param("accountDate") String accountDate,
			@Param("index") int index, @Param("size") int size);

	/**
	 * 
	 * 
	 * 获取对账数据总记录数
	 * 
	 * @param accountDate
	 * @return
	 */
	int countRecData(String accountDate);
	
	/**
	 *
	 * 方法说明：
	 *
	 * @param paymentOrderNO
	 */
	void deleteByPayOrder(String paymentOrderNO);

}
